package com.meilai.project.service.workflow;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.meilai.project.entity.workflow.DictFlowType;
import com.meilai.project.entity.workflow.FormModule;
import com.meilai.project.entity.workflow.WorkFlowDefault;
import com.meilai.project.vo.workflow.WorkFlowConditionDataVO;
import com.meilai.project.vo.workflow.WorkFlowDefaultListVO;
import springfox.documentation.spring.web.json.Json;

import java.util.List;

/**
 * @author gaoyo
 */
public interface FormModuleService extends IService<FormModule> {
    /**
     * 分页查询
     * @param page  当前页数
     * @param page_size 页面大小
     * @param name  模板名
     * @param flow_type 模板类型
     * @return  分页显示模板
     */
    Page<FormModule> pageFuc(Integer page, Integer page_size, String name, Integer flow_type);

    /**
     * 按类型返回模板列表
     * @return  按不同类型分类的模板列表
     */
    List<List<FormModule>> form_module_list();

    /**
     * 根据类型获取模板表
     * @param flow_type 模板类型
     * @return  模板表
     */
    FormModule getByFlowType(Integer flow_type);



    /**
     * 分页查询已设流程
     */
    Page<WorkFlowDefaultListVO> selectPageList(Integer current_page, Integer page_size, String name,
                                               Integer status, Integer flow_type);
    /**
     * 获取流程类型
     */
    List<DictFlowType> getFlowTypeList();
    /**
     * 获取全部用户
     */
    List<WorkFlowConditionDataVO> getAllUserData();
    /**
     * 获取全部部门
     */
    List<WorkFlowConditionDataVO> getAllDepartmentData();
    /**
     * 获取全部职位
     */
    List<WorkFlowConditionDataVO> getAllJobData();
    /**
     * 获取全部部门职位
     */
    List<WorkFlowConditionDataVO> getAllDepJobData();
    Json getEditOptions(Integer form_module_id);
    Json getPropertyJson(Integer form_module_id);
    /**
     * 保存流程
     */
    Boolean saveProcess(WorkFlowDefault data);

}
